// import uploadPhoto from './uploadPhoto';
// import request from '@/utils/request';


// 进行一些全局配置
// 公共路由(网络请求地址)
// request.defaults.baseURL = 'http://localhost:8100/api';
// 请求响应超时时间
// request.defaults.timeout = 5000;

import axios from 'axios'

// 创建一个axios实例
const request = axios.create({
  // 根据不同的环境设置baseURL，最终发送请求时的URL为: baseURL + 发送请求时写的URL
  baseURL: "/",
  withCredentials: true, // 允许携带cookie
  timeout: 20000 // 请求超时, 20秒
})

request.defaults.headers.common["Authorization"] = sessionStorage.getItem('Authorization');

// 请求拦截器
request.interceptors.request.use(
  // config => {
  //   // console.log('config', config)
  //   // 在发送请求之前做些什么，未登录、登录失效等处理
  //   return config
  // },
  // error => {
  //   console.log(error)
  //   return Promise.reject(error)
  // });
  config => {
    if (sessionStorage.getItem('Authorization')) {
      config.headers.Authorization = sessionStorage.getItem('Authorization');
    }
    // const token = sessionStorage.getItem('Authorization');
    // token && (config.headers['Authorization'] = token)

    // if (config.method === "post" && config.method === "POST") {

    //   config.data = qs.stringify(config.data);

    config.headers['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    // config.headers['Content-Type'] = 'multipart/form-data';

    // }

    return config;
  },
  error => {
    console.log(error)

    return Promise.reject(error);
  });

// 响应拦截器
request.interceptors.response.use(
  response => {
    // console.log(response)
    const res = response.data
    // 200是自定义的状态码，根据实际情况定义
    // if (res.code !== 200) {
    //   if (res.code === -1) {
    //     // ElNotification({
    //     //   message: '登录超时，请重新登录！',
    //     //   type: 'error',
    //     //   duration: 5 * 1000
    //     // })
    //     // 跳转到登录页面
    //     // router.push({ path: '/login' })
    //     setTimeout(() => {
    //       // 作为微应用时
    //       if (window.__POWERED_BY_QIANKUN__) {
    //         window.location.href = '/school/login'
    //       } else {
    //         window.location.href = '/login'
    //       }
    //     }, 3000)
    //   } else {
    //     // ElNotification({
    //     //   message: res.detail || res.msg || '系统无法使用，请联系管理员！',
    //     //   type: 'error',
    //     //   duration: 5 * 1000
    //     // })
    //   }
    //   // 此处还可以写一些其他的逻辑处理
    //   return Promise.reject(new Error(res.detail || res.msg))
    // } else {
    //   return res
    // }
    return res;
  },
  error => {
    console.log('err' + error)
    // ElNotification({
    //   message: error.message,
    //   type: 'error',
    //   duration: 5 * 1000
    // })
    return Promise.reject(error)
  }
)

export {request}

// 封装自己的get/post方法
export default {
  get: function (path = '', data = {}) {
    return new Promise(function (resolve, reject) {
      request.get(path, {
          params: data,
        })
        .then(function (response) {
          // 按需求来，这里我需要的是response.data，所以返回response.data，一般直接返回response
          resolve(response);
        })
        .catch(function (error) {
          reject(error);
        });
    });
  },
  post: function (path = '', data = {}) {
    return new Promise(function (resolve, reject) {
      request.post(path, {
          data
        })
        .then(function (response) {
          resolve(response);
        })
        .catch(function (error) {
          reject(error);
        });
    });
  },
  ParamsPost: function (path = '', params = {}) {
    return new Promise(function (resolve, reject) {
      request.post(path, null, {
          params
        })
        .then(function (response) {
          resolve(response);
        })
        .catch(function (error) {
          reject(error);
        });
    });
  },
  // photoPost: function(path = '', data = {}) {
  //   return new Promise(function(resolve, reject) {
  //     uploadPhoto.post(path, {
  //        data
  //     })
  //       .then(function(response) {
  //         resolve(response);
  //       })
  //       .catch(function(error) {
  //         reject(error);
  //       });
  //   });
  // }
};